﻿using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using Myotragus.Store.Model.Domain;
using Myotragus.Store.Model.Helpers;
using Myotragus.Store.Models;
using NHibernate.Cfg;
using Mappings = Myotragus.Store.Model.Mappings;

namespace Myotragus.Store
{
  // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
  // visit http://go.microsoft.com/?LinkId=9394801

  public class MvcApplication : HttpApplication
  {
    public static void RegisterRoutes(RouteCollection routes)
    {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

      routes.MapRoute(
          "Default", // Route name
          "{controller}/{action}/{id}", // URL with parameters
          new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
      );

    }

    protected void Application_AcquireRequestState(object sender, EventArgs e)
    {
      CultureHelper.SetThreadCulture();
    }

    protected void Application_Start()
    {
      AreaRegistration.RegisterAllAreas();

      RegisterRoutes(RouteTable.Routes);

      var configuration = new Configuration();
      configuration.Configure();
      Core.Register(configuration, new[] { typeof(ICategory), typeof(IProduct) }, 
        new[] { Mappings.CategoryProducts });
    }
  }
}